﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using vudu.Logica.Clases;
using vudu.ClasesDominio;
using vudu.Logica.Fachada;

namespace vudu.Pruebas
{
    [TestFixture]
    public class PruebaRol
    {
        /* [Test]
         public void PruebaVerificarCedulaProfesor()
         {
             Rol rol = new Rol();
             bool resp1 = rol.VerificarCedulaProfesor(14990555);
             bool resp2 = rol.VerificarCedulaProfesor(04099505);
             Assert.IsTrue(resp1);
             Assert.IsFalse(resp2);
         }

         [Test]
         public void PruebaValidarCorreo()
         {
             Rol rol = new Rol();
             bool resp1 = rol.VerificarCorreo("ucab@univ.vudu.com");
             bool resp2 = rol.VerificarCorreo("cualquiercosa@univ.vudu.com");
             Assert.IsTrue(resp1);
             Assert.IsFalse(resp2);
            
         }

         /// prueba del metodo UsuarioRol
         [Test]
         public void PruebaUsuarioRol()
         {
             Rol rolActual = new Rol();
             rolActual = rolActual.UsuarioActual("magurno@prof.vudu.com","12345");
             Assert.IsNotNull(rolActual);
             Assert.IsInstanceOf(typeof(Rol), rolActual);
             Assert.AreEqual(rolActual.Correo, "magurno@prof.vudu.com");
             Assert.AreEqual(rolActual.Password, "12345");
         }

         /// Prueba del metodo CargarUsuarioDeRol
         [Test]
         public void PruebaCargarUsuarioDeRol()
         {
             Rol rol = new Rol();
             Rol rolProfesor = rol.UsuarioActual("magurno@prof.vudu.com", "12345");
             Rol rolEstudiante = rol.UsuarioActual("pedro@est.vudu.com", "12345");
             Rol rolEscuela = rol.UsuarioActual("informatica@esc.vudu.com", "12345");
             Rol rolUniv = rol.UsuarioActual("ucab@univ.vudu.com", "12345");

             rol.CargarUsuarioDeRol(rolEstudiante);
             rol.CargarUsuarioDeRol(rolProfesor);
             rol.CargarUsuarioDeRol(rolEscuela);
             rol.CargarUsuarioDeRol(rolUniv);

             Assert.IsNotNull(rolEstudiante.MiEstudiante);
             Assert.AreNotEqual(rolEstudiante.FkEst, 0);
             Assert.AreEqual(rolEstudiante.MiEstudiante.Nombre,"Pedro");
             Assert.AreEqual(rolEstudiante.MiEstudiante.Apellido, "Perez");
             Assert.AreEqual(rolEstudiante.MiEstudiante.Cedula, 19345678);
             Assert.AreEqual(rolEstudiante.MiEstudiante.Expediente, "123");
             Assert.AreEqual(rolEstudiante.MiEstudiante.IdEst, 1);

             Assert.IsNotNull(rolProfesor.MiProfesor);
             Assert.AreNotEqual(rolProfesor.FkProf, 0);
             Assert.AreEqual(rolProfesor.MiProfesor.Cedula, 14990555);
             Assert.AreEqual(rolProfesor.MiProfesor.Nombre, "Carlo");
             Assert.AreEqual(rolProfesor.MiProfesor.Apellido, "Magurno");

             Assert.IsNotNull(rolEscuela.MiEscuela);
             Assert.AreNotEqual(rolEscuela.FkEsc, 0);
             Assert.AreEqual(rolEscuela.MiEscuela.IdEscuela, 1);
             Assert.AreEqual(rolEscuela.MiEscuela.NombreEscuela, "Ingeniería Informática");

             Assert.IsNotNull(rolUniv.MiUniversidad);
             Assert.AreNotEqual(rolUniv.FkUniv, 0);
             Assert.AreEqual(rolUniv.MiUniversidad.Nombre, "Universidad Catolica Andres Bello");

         }

         public void PruebaConsultrEscuelas()
         {
             Rol rol = new Rol();
             List<Escuela> escuelas = new List<Escuela>();

         }

         [Test]
         public void PruebaRegistrarRol()
         {
             Rol rol = new Rol();
             Rol rolProfesor = new Rol();
             Rol rolEstudiante = new Rol();
             Rol rolEscuela = new Rol();
             Rol rolUniv = new Rol();

             rolEstudiante.Correo = "pedro@est.vudu.com";
             rolEstudiante.Password = "12345";
             rolEstudiante.FkEst= 1;

             rolProfesor.Correo = "magurno@prof.vudu.com";
             rolProfesor.Password = "12345";
             rolProfesor.FkProf = 1;

             rolEscuela.Correo = "informatica@esc.vudu.com";
             rolEscuela.Password = "12345";
             rolEscuela.FkEsc = 1;

             rolUniv.Correo = "ucab@univ.vudu.com";
             rolUniv.Password = "12345";
             rolUniv.FkUniv = 1;

             bool aux1 = rol.RegistrarRol(rolEstudiante, 1);
             bool aux2 = rol.RegistrarRol(rolProfesor, 2);
             bool aux3 = rol.RegistrarRol(rolEscuela, 3);
             bool aux4 = rol.RegistrarRol(rolUniv, 4);

             Assert.IsTrue(aux1);
             //Assert.IsTrue(aux2);
             Assert.IsTrue(aux3);
             Assert.IsTrue(aux4);
         }*/

        #region Grupo 4 Pruebas
        [Test]
        public void PruebaRegistrarEstudianteRol()
        {
            
            EnlaceLogico fachada = new EnlaceLogico();
            int cedula = 19191939;
            int estudiante = 3;
            string correo = "sofia@est.vudu.com";
            if (fachada.verificarCorreoUsuarioRol(correo,estudiante) == false)
            {
                fachada.RegistrarRolenSistema(correo, "12345", estudiante, cedula);
                bool respuesta = fachada.verificarUsuarioRol(cedula, estudiante);
                Assert.IsNotNull(fachada);
                Assert.IsTrue(respuesta);
            }

        }
        [Test]
        public void PruebaRegistrarProfesorRol()
        {
            EnlaceLogico fachada = new EnlaceLogico();
            int cedula = 8100760;
            int profesor = 4;
            string correo = "armando@prof.vudu.com";
            if (fachada.verificarCorreoUsuarioRol(correo,profesor) == false)
            {
                fachada.RegistrarRolenSistema(correo, "12345", profesor, cedula);
                bool respuesta = fachada.verificarUsuarioRol(cedula, profesor);
                Assert.IsNotNull(fachada);
                Assert.IsTrue(respuesta);
            }
        }
        [Test]
        public void PruebaRegistrarUniversidadRol()
        {
            EnlaceLogico fachada = new EnlaceLogico();
            Universidad miUniversidad = new Universidad();
            miUniversidad.IdUniv = 5;
            int universidad = 1;
            string correo = "unimet@univ.vudu.com";
            if (fachada.verificarCorreoUsuarioRol(correo,universidad) == false)
            {
                fachada.RegistrarRolenSistema(correo, "12345", universidad, miUniversidad.IdUniv);
                bool respuesta = fachada.verificarCorreoUsuarioRol(correo, universidad);
                Assert.IsNotNull(fachada);
                Assert.IsNotNull(miUniversidad);
                Assert.IsTrue(respuesta);
            }
        }
        [Test]
        public void PruebaRegistrarEscuelaRol()
        {
            EnlaceLogico fachada = new EnlaceLogico();
            Escuela miEscuela = new Escuela();
            miEscuela.IdEscuela = 12;
            int escuela = 2;
            string correo = "letraucab@esc.vudu.com";
            if (fachada.verificarCorreoUsuarioRol(correo,escuela) == false)
            {
                fachada.RegistrarRolenSistema(correo, "12345", escuela, miEscuela.IdEscuela);
                bool respuesta = fachada.verificarCorreoUsuarioRol(correo, escuela);
                Assert.IsNotNull(fachada);
                Assert.IsNotNull(miEscuela);
                Assert.IsNotNull(respuesta);
            }
        }

        #endregion

    }
}